<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Binary-code compatibility</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Binary-code_compatibility"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Binary-code_compatibility rootpage-Binary-code_compatibility skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Binary-code compatibility</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<p><b>Binary-code compatibility</b> (binary compatible or <a href="Object_code" title="Object code">object-code</a> compatible) is a property of a <a href="Computer_system" class="mw-redirect" title="Computer system">computer system</a>, meaning that it can run the same <a href="Executable" title="Executable">executable code</a>, typically <a href="Machine_code" title="Machine code">machine code</a> for a <a href="Computer" title="Computer">general-purpose computer</a> <a href="Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU), that another computer system can run. <a href="Source-code_compatibility" title="Source-code compatibility">Source-code compatibility</a>, on the other hand, means that <a href="Code_compilation" class="mw-redirect" title="Code compilation">recompilation</a> or <a href="Interpreter_(computing)" title="Interpreter (computing)">interpretation</a> is necessary before the program can be run on the compatible system.
</p><p>For a compiled program on a general operating system, binary compatibility often implies that not only the CPUs (<a href="Instruction_set_architecture" title="Instruction set architecture">instruction sets</a>) of the two computers are binary compatible, but also that interfaces and behaviours of the <a href="Operating_system" title="Operating system">operating system</a> (OS) and <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interfaces</a> (APIs), and the <a href="Application_binary_interface" title="Application binary interface">application binary interfaces</a> (ABIs) corresponding to those APIs, are sufficiently equal, i.e. "compatible".
</p><p>A term like <a href="Backward_compatibility" title="Backward compatibility">backward-compatible</a> usually implies object-code compatibility. This means that newer computer hardware and/or software has (practically) every feature of the old, plus additional capabilities or performance. Older executable code will thus run unchanged on the newer product. For a compiled program running directly on a CPU under an OS, a "binary compatible operating system" primarily means <a href="Application_binary_interface" title="Application binary interface">application binary interface</a> (ABI) compatibility with another system. However, it also often implies that APIs that the application depends on, directly or indirectly (such as the <a href="Windows_API" title="Windows API">Windows API</a>, for example), are sufficiently similar. Hardware (besides the CPU, such as for graphics) and peripherals that an application accesses may also be a factor for full compatibility, although many hardware differences are hidden by modern APIs (often partly supplied by the OS itself and partly by specific <a href="Device_driver" title="Device driver">device drivers</a>).
</p><p>In other cases, a general <a href="Porting" title="Porting">porting</a> of the software must be used to make non-binary-compatible programs work.
</p><p>Binary compatibility is a major benefit when developing computer programs that are to be run on multiple OSes. Several <a href="Unix" title="Unix">Unix</a>-based OSes, such as <a href="FreeBSD" title="FreeBSD">FreeBSD</a> or <a href="NetBSD" title="NetBSD">NetBSD</a>, offer binary compatibility with more popular OSes, such as <a href="Linux" title="Linux">Linux</a>-derived ones, since most binary executables are not commonly distributed for such OSes.
</p><p>Most OSes provide binary compatibility, in each version of the OS, for most binaries built to run on earlier versions of the OS. For example, many executables compiled for <a href="Windows_3.1" title="Windows 3.1">Windows 3.1</a>, <a href="Windows_95" title="Windows 95">Windows 95</a> or <a href="Windows_2000" title="Windows 2000">Windows 2000</a> can also be run on <a href="Windows_XP" title="Windows XP">Windows XP</a> or <a href="Windows_7" title="Windows 7">Windows 7</a>, and many applications for <a href="DOS" title="DOS">DOS</a> ran on much newer versions of Windows up to Windows 10 for as long as the <a href="NTVDM" class="mw-redirect" title="NTVDM">NTVDM</a> was supported.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Binary_compatible_hardware">Binary compatible hardware</h2></div>
<p>For a digital processor implemented in hardware, binary compatibility means that (a large subset of) <a href="Machine_code" title="Machine code">machine code</a> produced for another processor can be correctly executed and has (much) the same effect as on the other processor. This is quite common among many processor families, although it is rather uncommon among the ubiquitous small <a href="Embedded_system" title="Embedded system">embedded systems</a> built around such processors. Full machine code compatibility would here imply exactly the same layout of <a href="Interrupt_handler" title="Interrupt handler">interrupt service routines</a>, I/O-ports, <a href="Hardware_register" title="Hardware register">hardware registers</a>, counter/timers, external interfaces and so on. For a more complex embedded system using more <a href="Abstraction_layer" title="Abstraction layer">abstraction layers</a> (sometimes on the border to a general computer, such as a mobile phone), this may be different.
</p>
<div class="mw-heading mw-heading2"><h2 id="Binary_compatible_operating_systems">Binary compatible operating systems</h2></div>
<p>Binary compatible operating systems are OSes that aim to implement binary compatibility with another OS, or another variant of the same brand. This means that they are ABI-compatible (for <a href="Application_binary_interface" title="Application binary interface">application binary interface</a>). As the job of an OS is to run programs, the <a href="Instruction_set_architecture" title="Instruction set architecture">instruction set architectures</a> running the OSes have to be the same or compatible. Otherwise, programs can be employed within a <a href="Emulator" title="Emulator">CPU emulator</a> or a faster <a href="Just-in-time_compilation" title="Just-in-time compilation">dynamic translation</a> mechanism to make them compatible.
</p><p>For example, the <a href="Linux_kernel" title="Linux kernel">Linux kernel</a> is not compatible with Windows. This does not mean that Linux cannot be binary compatible with Windows applications. Additional software, <a href="Wine_(software)" title="Wine (software)">Wine</a>, is available that does that to some degree. The <a href="ReactOS" title="ReactOS">ReactOS</a> development effort seeks to create an <a href="Open-source_software" title="Open-source software">open-source</a>, <a href="Free_software" title="Free software">free software</a> OS that is binary compatible with <a href="Microsoft" title="Microsoft">Microsoft's</a> <a href="Windows_NT" title="Windows NT">Windows NT</a> family of OSes using Wine for application compatibility and reimplementing the Windows kernel for additional compatibility such as for drivers whereas Linux would use Linux drivers, not Windows drivers. <a href="FreeBSD" title="FreeBSD">FreeBSD</a> and other members of the <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a> family have binary compatibility with the <a href="Linux_kernel" title="Linux kernel">Linux kernel</a> in <a href="Usermode" class="mw-redirect" title="Usermode">usermode</a> by translating Linux system calls into BSD ones. This enables the application and libraries code that run on <a href="Linux" title="Linux">Linux</a>-based OSes to be run on BSD as well.
</p><p>Note that a binary compatible OS is different from running an alternative OS through <a href="Hardware_virtualization" title="Hardware virtualization">virtualization</a> or <a href="Emulator" title="Emulator">emulation</a>, which is done to run software within the alternative OS in the case when the host OS is not compatible. Sometimes virtualization is provided with the host OS (or such software can be obtained), which effectively makes the host OS compatible with programs. For example, <a href="Windows_XP_Mode" class="mw-redirect" title="Windows XP Mode">Windows XP Mode</a> for <a href="Windows_7" title="Windows 7">Windows 7</a> allows users to run a <a href="64-bit_computing" title="64-bit computing">64-bit</a> version of Windows 7 and enable old software to still work in a <a href="32-bit" class="mw-redirect" title="32-bit">32-bit</a> virtual machine running <a href="Windows_XP" title="Windows XP">Windows XP</a>; <a href="VMware_Workstation" title="VMware Workstation">VMware Workstation</a>/<a href="VMware_Fusion" title="VMware Fusion">VMware Fusion</a>, <a href="Parallels_Workstation" title="Parallels Workstation">Parallels Workstation</a>, and <a href="Windows_Virtual_PC" class="mw-redirect" title="Windows Virtual PC">Windows Virtual PC</a> allow other OSes to be run on Windows, Linux, and macOS.
</p><p>For another example, <a href="Mac_OS_X" class="mw-redirect" title="Mac OS X">Mac OS X</a> on the <a href="PowerPC" title="PowerPC">PowerPC</a> had the ability to run <a href="Mac_OS_9" title="Mac OS 9">Mac OS 9</a> and earlier application software through <a href="Classic_Environment" class="mw-redirect" title="Classic Environment">Classic</a>—but this did not make Mac OS X a binary compatible OS with Mac OS 9. Instead, the Classic environment was actually running Mac OS 9.1 in a <a href="Virtual_machine" title="Virtual machine">virtual machine</a>, running as a normal process inside of Mac OS X.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Backward_compatibility" title="Backward compatibility">Backward compatibility</a></li>
<li><a href="Application_binary_interface" title="Application binary interface">Application binary interface</a> (ABI)</li>
<li><a href="Computer_compatibility" title="Computer compatibility">Computer compatibility</a></li>
<li><a href="Bug_compatibility" title="Bug compatibility">Bug compatibility</a></li>
<li><a href="Plug_compatibility" title="Plug compatibility">Plug compatibility</a></li>
<li><a href="Video_game_remake" title="Video game remake">Video game remake</a></li>
<li><a href="Multi-architecture_binary" class="mw-redirect" title="Multi-architecture binary">Multi-architecture binary</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20020802034101/http://developer.apple.com/macosx/architecture/">"Mac OS X System Architecture"</a>. 2002. Archived from <a rel="nofollow" class="external text" href="https://developer.apple.com/macosx/architecture/">the original</a> on August 2, 2002.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFSingh2006" class="citation book cs1">Singh, Amit (June 29, 2006). <i>Mac OS X Internals: A Systems Approach</i>. <a href="Addison-Wesley" title="Addison-Wesley">Addison-Wesley</a>. Section 2.11.8: Classic. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-321-27854-2</bdi>. <q>Classic Startup is a Mach-O application that runs Mac OS 9 within its address space. It provides a hardware abstraction layer between Mac OS 9 and Mac OS X by virtualizing traps, system calls, and interrupts. It runs in a protected memory environment, with multiple Mac OS 9 processes within it layered on top of a single Mac OS X BSD process.</q></cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++">KDE Techbase Policies</a> – a compendium of C++ development rules of thumb (with <a rel="nofollow" class="external text" href="http://techbase.kde.org/Policies/Binary_Compatibility_Examples">some examples</a>) for not breaking binary compatibility between releases of a library.</li>
<li><a rel="nofollow" class="external text" href="https://github.com/lvc?tab=repositories">ABI Analysis Tools</a> – a set of open-source tools for analysis of ABI and backward binary compatibility implementing KDE Techbase Policies</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Application_binary_interface_(ABI)74" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Application_binary_interface_(ABI)74" style="font-size:114%;margin:0 4em"><a href="Application_binary_interface" title="Application binary interface">Application binary interface</a> (ABI)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Parts,<br>conventions</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Data_structure_alignment" title="Data structure alignment">Alignment</a></li>
<li><a href="Calling_convention" title="Calling convention">Calling convention</a></li>
<li><a href="Call_stack" title="Call stack">Call stack</a></li>
<li><a href="Library_(computing)" title="Library (computing)">Library</a>
<ul><li><a href="Static_library" title="Static library">static</a></li></ul></li>
<li><a href="Machine_code" title="Machine code">Machine code</a></li>
<li><a href="Memory_segmentation" title="Memory segmentation">Memory segmentation</a></li>
<li><a href="Name_mangling" title="Name mangling">Name mangling</a></li>
<li><a href="Object_code" title="Object code">Object code</a></li>
<li><a href="Opaque_pointer" title="Opaque pointer">Opaque pointer</a></li>
<li><a href="Position-independent_code" title="Position-independent code">Position-independent code</a></li>
<li><a href="Relocation_(computing)" title="Relocation (computing)">Relocation</a></li>
<li><a href="System_call" title="System call">System call</a></li>
<li><a href="Virtual_method_table" title="Virtual method table">Virtual method table</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul>
<li><a href="Foreign_function_interface" title="Foreign function interface">Foreign function interface</a></li>
<li><a href="Language_binding" title="Language binding">Language binding</a></li>
<li><a href="Linker_(computing)" title="Linker (computing)">Linker</a>
<ul><li><a href="Dynamic_linker" title="Dynamic linker">dynamic</a></li></ul></li>
<li><a href="Loader_(computing)" title="Loader (computing)">Loader</a></li>
<li><a href="Year_2038_problem" title="Year 2038 problem">Year 2038 problem</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-04-28" href="https://en.wikipedia.org/wiki/?title=Binary-code_compatibility&oldid=1221272726">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>